package controllers;

import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import models.Usuario;
import repository.IRepositorioUsuario;
import repository.RepositorioUsuario;

public class ControllerUsuario {

	private IRepositorioUsuario usuarioRepositorio;

	// GET e SET
	// --------------------------------------------------------------------
	public IRepositorioUsuario getUsuarioRepositorio() {
		return usuarioRepositorio;
	}

	public void setUsuarioRepositorio(IRepositorioUsuario usuarioRepositorio) {
		this.usuarioRepositorio = usuarioRepositorio;
	}

	// -------------------------------------------------------------------
	public ControllerUsuario(RepositorioUsuario repositorioUsuario) {
		this.setUsuarioRepositorio(repositorioUsuario);
	}

	// -------------------------------------------------------------------
	public boolean inserir(Usuario usuario) throws SQLException {

		String dataSistema = new SimpleDateFormat("dd/MM/yyyy")
				.format(new Date());
		String horaSistema = new SimpleDateFormat("HH:mm").format(new Date());

		usuario.setDataCadastro(dataSistema);
		usuario.setDatahoraModificacao(dataSistema + " " + horaSistema);
		usuario.setHoraCadastro(horaSistema);

		return usuarioRepositorio.inserirUsuario(usuario);

	}
	//-------------------------------------------------------------------
	public boolean remover(Usuario usuario) throws SQLException {
		return usuarioRepositorio.removerUsuario(usuario);
	}

	// -------------------------------------------------------------------
	public boolean atualizar(Usuario usuario) throws SQLException {

		String dataHoraSistema = new SimpleDateFormat("dd/MM/yyyy HH:mm")
				.format(new Date());
		usuario.setDatahoraModificacao(dataHoraSistema);

		return usuarioRepositorio.atualizarUsuario(usuario);
	}

	// -------------------------------------------------------------------
	public List<Usuario> listar() throws SQLException {
		return usuarioRepositorio.listarUsuario();
	}

	// -------------------------------------------------------------------
	public List<Usuario> buscar(String chave) throws SQLException {
		return usuarioRepositorio.buscarUsuario(chave);
	}

	// -------------------------------------------------------------------
	public boolean autenticar(String login, String senha) throws SQLException {
		return usuarioRepositorio.autenticar(login, senha);
	}

	// -------------------------------------------------------------------
	public boolean verificarLogin(String login) throws SQLException, Exception {
		return usuarioRepositorio.verificarLogin(login);
	}
	// -------------------------------------------------------------------
}
